package com.mes.cloud.service;

import com.github.pagehelper.PageInfo;
import com.mes.cloud.dto.BmeBcReportDTO;
import com.mes.cloud.util.CommPager;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * bme_bc_report基础表
 *
 * @author xhy
 * @date 2019/06/11 16:00
 */
public interface BmeBcReportService {

    /**
     * 根据条件获取bme_bc_report基础表列表
     *
     * @param condition
     * @return List<BmeBcReportDTO>
     * @author xhy
     * @date 2019/06/11 16:00
     */
    List<BmeBcReportDTO> getBmeBcReportList(Map<Object, Object> condition);

    /**
     * 根据条件获取bme_bc_report基础表列表
     *
     * @param map
     * @return List<BmeBcReportDTO>
     * @author xhy
     * @date 2019/06/11 16:00
     */
    CommPager<BmeBcReportDTO> getBmeBcReportListPage(Map<Object, Object> map);

    /**
     * 获取bme_bc_report基础表的最大记录数
     *
     * @param condition
     * @return long
     * @author xhy
     * @date 2019/06/11 16:00
     */
    long getBmeBcReportCount(Map<Object, Object> condition);

    /**
     * 新增bme_bc_report基础表
     *
     * @param bmeBcReportDTO bme_bc_report基础表对象]
     * @return long
     * @author xhy
     * @date 2019/06/11 16:00
     */
    long insertBmeBcReport(BmeBcReportDTO bmeBcReportDTO);

    /**
     * 更新bme_bc_report基础表
     *
     * @param bmeBcReportDTO bme_bc_report基础表对象]
     * @return long
     * @author xhy
     * @date 2019/06/11 16:00
     */
    long updateBmeBcReport(BmeBcReportDTO bmeBcReportDTO);

    /**
     * 删除bme_bc_report基础表
     *
     * @param id bme_bc_report基础表标识]
     * @return long
     * @author xhy
     * @date 2019/06/11 16:00
     */
    long delBmeBcReportById(String id);

    /**
     * 根据bme_bc_report基础表标识获取bme_bc_report基础表
     *
     * @param id bme_bc_report基础表标识]
     * @return long
     * @author xhy
     * @date 2019/06/11 16:00
     */
    BmeBcReportDTO getBmeBcReportById(String id);

    /**
     * 批量删除操作
     *
     * @param map
     * @return
     * @throws Exception
     */
    Object batchDelete(Map<Object, Object> map) throws Exception;

    /**
     * 进行是否开启操作
     *
     * @param map
     * @return
     * @throws Exception
     */
    long enable(Map<Object, Object> map) throws Exception;

    /**
     * 启用禁用 批量
     *
     * @param map
     * @return
     * @throws Exception
     */
    Long batchEnable(Map<Object, Object> map) throws Exception;

    /**
     * 导出excel表信息
     *
     * @param file
     * @return
     * @throws Exception
     */
    int importExcel(MultipartFile file) throws Exception;

    /**
     * 导入excel表信息
     *
     * @param map,response
     * @return
     * @throws Exception
     */
    void exportFile(Map<Object, Object> map, HttpServletResponse response) throws Exception;
}
